package com.nondo.dean.auth.provider;

import com.nondo.dean.auth.common.bean.CompanyItem;
import com.nondo.dean.auth.common.bean.CompanyTree;
import com.nondo.dean.auth.domain.Company;
import com.nondo.dean.common.web.Page;
import com.nondo.dean.common.web.Query;
import com.nondo.dean.common.web.View;

import java.util.List;

/**
 * project：dean-cloud
 *
 * @author linfeng @ nondo
 * @date 2018/4/23
 */
public interface CompanyManager {

    /**
     * 公司保存请求
     *
     * @param item 公司信息
     * @return 消息提示
     */
    View<String> requestSave(CompanyItem item);

    /**
     * 删除公司请求
     *
     * @param companyId 公司信息
     * @return 消息提示
     */
    View<String> requestDelete(Long companyId);

    /**
     * 删除公司请求
     *
     * @param companyIds 公司编号数组
     * @return 消息提示
     */
    View<String> requestMultiDelete(Long[] companyIds);

    /**
     * 删除公司请求
     *
     * @param item 公司信息
     * @return 消息提示
     */
    View<Page<Company>> requestQuery(Query<CompanyItem> item);

    /**
     * 公司树状结构
     *
     * @return 返回注册成功或失败的信息
     */
    View<List<CompanyTree>> requestCompanyTreeOfAll();

    /**
     * 删除公司请求
     *
     * @param id 公司信息
     * @return 消息提示
     */
    View<Company> requestQueryOne(Long id);

}
